/*
数组的扩展---数组新增的一个特性
1.Array.from
2.Array.of
3.copyWithin
4.find\findIndex
5.fill
6.entries\keys\values
7.inludes
*/

{
//Array.of 就是把一组数据变量变成一组数据类型的一个方式
let arr = Array.of(3,4,7,9,11);
console.log('arr=',arr);//[3,4,7,9,11]
let empty=Array.of()
console.log(empty);//[]
}

{
  //Array.from()  把伪数组和集合转换成真正的数组  伪数组用each()是获取不到的
  let p=document.querySelectorAll('p');
  let pArr=Array.from(p);
  pArr.forEach(function(item){
    //textContent   js里面原生的方法获取标签里面的内容的
    console.log(item.textContent);
  });
  //起到了数组里面的map()方法的一个映射的作用
  console.log(Array.from([1,3,5],function(item){
    return item*2;
  }));
}

{
  //填充数组
  console.log('fill-7',[1,2,3,'p','w',undefined].fill(7));
  //fill('替换的内容'，‘起始位置’，‘结束位置’)
  console.log('fill,pos',['a','b','c'].fill(7,1,3));
}

{
  // 遍历数组获取下标
  for (let index of [1, 'c', 3, 'r', 9].keys()) {
    console.log('keys', index);
  }
  //遍历数组获取values   这个values 存在兼容的问题
  for (let value of [1, 'c', 3, 'r', 9].values()) {
    console.log('values', value);
  }
  //遍历数组获取key和value
  for (let [index,value] of [1, 'c', 3, 'r', 9].entries()) {
    console.log('keys+values', index,value);
  }
}

{
  //当前数组内部把指定的位置的成员赋值到其他位置上面去
  //copyWithin(‘从什么位置开始开始替换’，‘从什么位置开始读取数据’，‘从什么位置结束’)
  console.log([1,2,3,4,5,6].copyWithin(0,2,5));//[3, 4, 5, 4, 5, 6]
}

{
  //数组中的查找  find  findIndex
   console.log([1,2,3,4,5,6].find(function(item){
     return item > 3
   }));//4
   //find查找只是查找到当前符合条件的一个值，找到以后就不进行往下查找了
   console.log([1,2,3,4,5,6].findIndex(function(item){
     return item > 3
   }));//3
      //find查找只是查找到当前符合条件的一个值的一个下标，找到以后就不进行往下查找了
}

{
  //没有没包含这个值。
  console.log('number',[1,2,NaN].includes(1));//true
  console.log('number',[1,2,NaN].includes(NaN));//true
}
